import sys

import pytest
import os

from common.file_load import load_yaml_file, write_yaml

if __name__ == '__main__':

    args = sys.argv
    print(args)
    env_file_path=f'/config/env_test.yml'
    if len(args) > 1:
        env_name = args[1]#得到传进来的环境名称
        env_file_path =f'/config/env_{env_name}.yml'
        #环境配置文件路径生成后，将传进来的环境名称删掉，否则会被当成pytest要执行的用例名称
        del  args[1]
    #读取对应的环境信息
    env_info =load_yaml_file(env_file_path)
    #将环境信息分别写入对应的common.yml/http.yml/db.yml/redis.yml
    write_yaml('/config/common.yml',env_info['common'])
    write_yaml('/config/http.yml', env_info['http'])
    write_yaml('/config/db.yml', env_info['db'])
    write_yaml('/config/redis.yml', env_info['redis'])
    # 会自动扫描当前目录下的pytest.ini,然后根据配置去执行
    pytest.main()
    # 使用python执行生成测试报告的命令
    os.system('allure generate ./report/data -o ./report/html --clean')
    #在python中执行时，会根据当前运行的python文件所处路径去找你写的路径文件
#动态获取当前项目路径，在操作文件的方法中，通过拼接项目路径和数据文件路径的方式，把操作文件路径变成绝对路径
